Signed-off-by: Steven Hand <steven@xensource.com>
case DOM0_GETPAGEFRAMEINFO2:
{
-#define GPF2_BATCH 128
+#define GPF2_BATCH (PAGE_SIZE / sizeof(unsigned long))
int n,j;
int num = op->u.getpageframeinfo2.num;
domid_t dom = op->u.getpageframeinfo2.domain;
struct pfn_info *page;
unsigned long mfn = l_arr[j];
- if ( unlikely(mfn >= max_page) )
- goto e2_err;
-
page = &frame_table[mfn];
-
- if ( likely(get_page(page, d)) )
+
+ if ( likely(pfn_valid(mfn) && get_page(page, d)) )
{
unsigned long type = 0;
put_page(page);
}
else
- {
- e2_err:
l_arr[j] |= XTAB;
- }
}
break;
}
- n += j;
+ n += k;
}
free_xenheap_page(l_arr);